Computers are often associated with one another in a network. Problems occurring in a networked computer system can cause errors in running applications in one or more computers within the network system. Where an unsophisticated user experiences a network problem, the application being run usually indicates some failure at the application level. However, the user generally does not receive a detailed indication as to the nature of the problem causing the application failure. Diagnosing network related problems commonly requires training and experience with networked computer systems and takes a considerable amount of time.
Typically, several diagnostic tests must be performed using several different tools or complicated low-level command line interfaces. Based on the results of one such diagnostic test, a sophisticated technical person may run further tests in a hierarchical fashion, in order to expeditiously determine the cause of the problem. Due to the technical nature of computer network problems, such problems are commonly addressed by technical support personnel, who either come on-site, or work with the customer over the telephone, in order to troubleshoot the problem. Whether attempting to diagnose network problems alone, or with the help of technical support personnel, the experience is generally frustrating for consumers not trained as network experts.
Network problems can be the result of a wide range of issues, from minimal disruptions in service due to hardware troubles, to configuration problems associated with an operating system. Computer networks are generally implemented in a hierarchy of layers which segment the various required behaviors and functions in a manageable fashion. One such layered network approach is known as the ISO/OSI (International Organization for Standardization Open System Interconnection) model. Another layered network model used is the standard TCP/IP (Transmission Control Protocol/Internet Protocol) model.
Although the layered network architectures allow programmers to focus on a layer within a model without having to understand the layers above or below, the layered approach fails to provide cooperative error reporting between layers. Thus, lower layers of the network do not report meaningful errors to upper layer applications. The result is that lower layer network problems can cause upper layer application problems without giving any information about why the errors are occurring. Applications which are run by users typically do not include sophisticated methods for identifying and correcting network related errors. Because specific problems are not identified for the application by the network, no corrective action can be taken. This results in confusion and frustration for consumers, who must then call support professionals to help solve their application problems.
Support professionals are thus forced to teach the consumer how to troubleshoot or otherwise obtain diagnostic information with command line utilities such as PING, Telnet, and others. To fix network related problems, methodical troubleshooting techniques are required. The first step usually involves gathering information about the user machine. The second step is identifying what works and what doesn't. Many of the tools and techniques used in this process only frustrate a consumer who is not interested in the command line tools and interfaces that are necessary to solve the problem. In addition, the process takes a considerable amount of time, particularly where the technical support person is instructing an unsophisticated user to run such low level tests over the telephone, and having the user interpret the results. Moreover, such users are prone to mistype command line instructions, and may therefore be providing the technical support personnel with bad information. Thus, there is a need for improved network diagnostic tools and methodologies.